#pragma once

#ifndef _OGL_GEOMETRY_DATA
#define _OGL_GEOMETRY_DATA

#include <gl/glew.h>
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>

class OGLGeometryData
{
private :

	glm::mat4 translationMat, scaleMat, rotationMat, srMat, srtMat;
	bool srMatChange;
	glm::vec3 position;		// Object's position in World Space

	void setDefaults(void);

public :

	GLenum drawType;
	GLsizei vertexCount;

	// TODO : Add matrix access and modification functions
	OGLGeometryData(void);
	OGLGeometryData(glm::vec3 pos);
	~OGLGeometryData(void);

	glm::vec3 GetObjectPosition(void);
	void SetTranslationMatAbsolute(glm::vec3 newPos);
	void SetTranslationMatRelative(glm::vec3 updatePos);
	void SetScaleMat(glm::vec3 scaleVec);
	void SetRotationMat(float angle, glm::vec3 rotationAxis);

	glm::mat4 GetSRTMat(void);

};

#endif